package com.example.demo.mapper;


import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper // mybatis interface
public interface UserMapper {

    // 特殊查询 like 模糊查询
    public List<UserInfo> getListByName(@Param("username") String username);


    // 根据用户 ID 查询用户
    public UserInfo  getUserById(@Param("id") Integer id);

    // 根据用户 ID 查询用户 <where>标签
    public UserInfo  getUserById2(@Param("id") Integer id);


    // 查询用户及用户发表的所有文章,根据用户 id
    public UserInfo getUserAndArticleByUid(@Param("uid") Integer uid);

    // 修改方法 【根据 id 修改名称】
    public int update(@Param("id") Integer id,
                      @Param("username") String username);

    // 删除方法 【根据 id 删除用户】
    public int delete(@Param("id") Integer id);


    // 添加方法，返回受影响的行数和ID
    public int addGetId(UserInfo userInfo);

    // 添加方法，返回受影响的行数
    public int add(UserInfo userInfo);

    // 添加用户，添加用户时 photo 是非必传参数
    public int add2(UserInfo userInfo);

    // 添加用户，其中 username，password，photo 都是非必传参数，但至少会传递一个参数
    public int add3(UserInfo userInfo);



}
